var frequencias;

$(document).ready(function() {
    
    $('.usuario').text(getUsuario());

    obterFrequencia();

    function atualizarFrequencia() {
        var html = '';
        
        for (var i in frequencias) {
            html += '<li data-icon="false"><a href="#" class="mostrarMotivo" id=' + frequencias[i].id + '>' + frequencias[i].dia+' '+frequencias[i].mes+ '</a></li>';
        }

        $('#listFrequencia').html(html);
        $('.mostrarMotivo').click(function() {
            var idFrequencia = $(this).attr('id');
            $("#idFrequencia").val(idFrequencia);
            obterMotivo(idFrequencia);
            $.mobile.navigate('#motivo');
        });
        $("#listFrequencia").listview('refresh');
    };

    function atualizarMotivo(motivo) {
        
        $('#statusMotivo').val('atualizar');
        $('#textAreaMotivo').val(motivo);

    };

    function obterFrequencia() {

        if (!frequencias) {
            var request = $.ajax({
                type: "GET",
                url: "http://"+webservice+"/frequencia/" + getHash(),
                dataType: 'json'
            });
            request.done(function(data) {
                if (data && !data.expirou) {
                    frequencias = data.values;
                    atualizarFrequencia();
                } else {
                    mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
                }
            });
            request.fail(function(jqXHR, status, exception) {
                mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
            });
        } else {
            atualizarFrequencia();
        }
    };

    function obterMotivo(idFrequencia) {
        var request = $.ajax({
            type: "GET",
            url: "http://"+webservice+"/frequencia/motivo/" + idFrequencia + '/' + getHash(),
            dataType: 'json'
        });
        request.done(function(data) {
            var vazio = $.isEmptyObject(data.values[0]);
            
            if (!vazio && !data.expirou) {
                atualizarMotivo(data.values[0].motivo);
            } else if(vazio){
                $('#textAreaMotivo').val('');
                $('#statusMotivo').val('cadastrar');
            }else
                mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
        });
        request.fail(function(jqXHR, status, exception) {
            mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
        });
    };
    
    function postarMotivo(idFrequencia,motivo){
        var request = $.ajax({
            type: "POST",
            url: "http://"+webservice+"/frequencia/motivo/salvar",
            data: {hash: getHash(),idFrequencia: idFrequencia,motivo: motivo},
            dataType: 'json'
        });
        request.done(function(data) {
            var vazio = $.isEmptyObject(data);
            
            if (!vazio && data.value && !data.expirou) {
                mostrarAlerta('sucesso', 'Salvo', 'Motivo salvo com sucesso!');
            } else if(vazio){
                mostrarAlerta('erro', 'Erro ao salvar', 'Ocorreu um erro ao tentar salvar o motivo.');
            }else if(data.expirou)
                mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
        });
        request.fail(function(jqXHR, status, exception) {
           mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
        });
    };
    
    function alterarMotivo(idFrequencia,motivo){
        var request = $.ajax({
            type: "PUT",
            url: "http://"+webservice+"/frequencia/motivo/atualizar/"+idFrequencia,
            data: {hash: getHash(),motivo: motivo},
            dataType: 'json'
        });
        request.done(function(data) {
            var vazio = $.isEmptyObject(data);
            
            if (!vazio && data.value && !data.expirou) {
                mostrarAlerta('sucesso', 'Atualizado', 'Motivo atualizado com Sucesso');
            } else if(vazio){
                mostrarAlerta('erro', 'Erro ao atualizar', 'Ocorreu um erro ao atualizar o motivo.');
            }else if(data.expirou)
                mostrarAlerta('erro', 'Sessão Expirada', 'Seu Tempo de acesso expirou!','index.html');
        });
        request.fail(function(jqXHR, status, exception) {
            mostrarAlerta('erro', 'Erro no acesso', 'Ocorreu um erro ao acessar o servidor.','index.html');
        });
    };
    
    $('#cadastrarMotivo').click(function (){
        if($('#statusMotivo').val() == 'cadastrar'){
            var idFrequencia = $("#idFrequencia").val();
            var motivo = $("#textAreaMotivo").val();

            postarMotivo(idFrequencia,motivo);            
            
        }else if($('#statusMotivo').val() == 'atualizar'){
            var idFrequencia = $("#idFrequencia").val();
            var motivo = $("#textAreaMotivo").val();
            
            alterarMotivo(idFrequencia,motivo);
            
        }
        
    });
});